package com.springboot.demo.service;

import com.springboot.demo.entity.Panel;
import com.springboot.demo.entity.PanelComponent;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * @author wubc683
 * @desc
 * @date 2021-11-18 17:06
 */
public interface PanelService {

//    /**
//     * 获取所有场景仪表盘信息
//     * @param uid
//     * @param sid
//     * @return: java.util.List<com.springboot.demo.entity.Panel>
//     */
//    List<Panel> getAllScenePanelInfo(Long uid, Long sid);

//    /**
//     * 获取场景仪表盘信息
//     * @param uid
//     * @param pid
//     * @return: java.util.List<com.springboot.demo.entity.Panel>
//     */
//    List<Panel> getScenePanelInfo(Long uid, Long pid);

//    /**
//     * 创建场景仪表盘
//     * @param uid
//     * @param sid
//     * @param name
//     * @return: void
//     */
//    void saveScenePanelInfo(Long uid, Long sid,String name);

    /**
     * 获取所有仪表盘信息
     * @param uid
     * @param type
     * @param sceneId
     * @return: java.util.List<com.springboot.demo.entity.Panel>
     */
    List<Panel> getAllPanel(Long uid,Integer type,Long sceneId);

    /**
     * 创建仪表盘
     * @param uid
     * @param type
     * @param sceneId
     * @param name
     * @return: void
     */
    void savePanel(Long uid, Integer type,Long sceneId,String name);

    /**
     * 修改仪表盘
     * @param uid
     * @param panel
     * @return: void
     */
    void updatePanel(Long uid, Panel panel);

    /**
     * 删除仪表盘信息
     * @param uid
     * @param pid
     * @return: void
     */
    void deletePanel(Long uid, Long pid);

    /**
     * 获取仪表盘组件信息
     * @param uid
     * @param pid
     * @return: com.springboot.demo.entity.Panel
     */
    Panel getPanelComponent(Long uid,Long pid);

    /**
     * 为仪表盘配置组件
     * @param uid
     * @param componentList
     * @return: void
     */
    void updatePanelComponent(Long uid, List<PanelComponent> componentList);

    /**
     * 为仪表盘增加组件
     * @param uid
     * @param component
     * @return: void
     */
    void addPanelComponent(Long uid, PanelComponent component);

    /**
     * 删除仪表盘组件
     * @param uid
     * @param component
     * @return: void
     */
    void deletePanelComponent(Long uid,PanelComponent component);
}
